<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>ES5 中的新增方法 ----- 对象方法2</title>
    <!-- 
        2. Object.defineProperty() 定义对象中新属性或修改原有的属性。(了解)
        Object.defineProperty(obj,prop,descriptor) 
        obj：必需。目标对象 
        prop：必需。需定义或修改的属性的名字
        descriptor：必需。目标属性所拥有的特性
        Object.defineProperty() 第三个参数 descriptor 说明： 以对象形式 { } 书写
        value: 设置属性的值 默认为undefined
        writable: 值是否可以重写。true | false 默认为false
        enumerable: 目标属性是否可以被枚举。true | false 默认为 false
        configurable: 目标属性是否可以被删除或是否可以再次修改特性 true | false 默认为false

     -->
</head>
<body>
    
</body>
<script>
    var obj = {
        id: 1,
        pname: '小米',
        price: 1999
    }
    console.log(obj);
    // 以前的对象添加和修改的写法
    // obj.num=1999
    // obj.price=999
    Object.defineProperty(obj,'num',{
        value: 1000,
        writable:true,
        enumerable:true,
        configurable:true
    })
    console.log(obj);
    delete obj.num
    console.log(obj);
    Object.defineProperty(obj,'price',{
        writable:false,
        configurable:true

    })
    obj.price = '2000'
    delete obj.price
    console.log(obj);
</script>
</html>